<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-pragma">{-# LANGUAGE FlexibleContexts #-}</span><span>
</span><span id="line-2"></span><span class="hs-pragma">{-# LANGUAGE RankNTypes #-}</span><span>
</span><span id="line-3"></span><span>
</span><span id="line-4"></span><span class="hs-comment">-----------------------------------------------------------------------------</span><span>
</span><span id="line-5"></span><span class="hs-comment">-- |</span><span>
</span><span id="line-6"></span><span class="hs-comment">-- Module      :  Distribution.Simple.UserHooks</span><span>
</span><span id="line-7"></span><span class="hs-comment">-- Copyright   :  Isaac Jones 2003-2005</span><span>
</span><span id="line-8"></span><span class="hs-comment">-- License     :  BSD3</span><span>
</span><span id="line-9"></span><span class="hs-comment">--</span><span>
</span><span id="line-10"></span><span class="hs-comment">-- Maintainer  :  cabal-devel@haskell.org</span><span>
</span><span id="line-11"></span><span class="hs-comment">-- Portability :  portable</span><span>
</span><span id="line-12"></span><span class="hs-comment">--</span><span>
</span><span id="line-13"></span><span class="hs-comment">-- This defines the API that @Setup.hs@ scripts can use to customise the way</span><span>
</span><span id="line-14"></span><span class="hs-comment">-- the build works. This module just defines the 'UserHooks' type. The</span><span>
</span><span id="line-15"></span><span class="hs-comment">-- predefined sets of hooks that implement the @Simple@, @Make@ and @Configure@</span><span>
</span><span id="line-16"></span><span class="hs-comment">-- build systems are defined in &quot;Distribution.Simple&quot;. The 'UserHooks' is a big</span><span>
</span><span id="line-17"></span><span class="hs-comment">-- record of functions. There are 3 for each action, a pre, post and the action</span><span>
</span><span id="line-18"></span><span class="hs-comment">-- itself. There are few other miscellaneous hooks, ones to extend the set of</span><span>
</span><span id="line-19"></span><span class="hs-comment">-- programs and preprocessors and one to override the function used to read the</span><span>
</span><span id="line-20"></span><span class="hs-comment">-- @.cabal@ file.</span><span>
</span><span id="line-21"></span><span class="hs-comment">--</span><span>
</span><span id="line-22"></span><span class="hs-comment">-- This hooks type is widely agreed to not be the right solution. Partly this</span><span>
</span><span id="line-23"></span><span class="hs-comment">-- is because changes to it usually break custom @Setup.hs@ files and yet many</span><span>
</span><span id="line-24"></span><span class="hs-comment">-- internal code changes do require changes to the hooks. For example we cannot</span><span>
</span><span id="line-25"></span><span class="hs-comment">-- pass any extra parameters to most of the functions that implement the</span><span>
</span><span id="line-26"></span><span class="hs-comment">-- various phases because it would involve changing the types of the</span><span>
</span><span id="line-27"></span><span class="hs-comment">-- corresponding hook. At some point it will have to be replaced.</span><span>
</span><span id="line-28"></span><span>
</span><span id="line-29"></span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">Distribution.Simple.UserHooks</span><span> </span><span class="hs-special">(</span><span>
</span><span id="line-30"></span><span>        </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier">UserHooks</span></a></span><span class="hs-special">(</span><span class="hs-glyph">..</span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier">Args</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-31"></span><span>        </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#emptyUserHooks"><span class="hs-identifier">emptyUserHooks</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>  </span><span class="hs-special">)</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-33"></span><span>
</span><span id="line-34"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Prelude.html#"><span class="hs-identifier">Prelude</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-35"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Compat.Prelude.html"><span class="hs-identifier">Distribution.Compat.Prelude</span></a></span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.PackageDescription.html"><span class="hs-identifier">Distribution.PackageDescription</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Program.html"><span class="hs-identifier">Distribution.Simple.Program</span></a></span><span>
</span><span id="line-39"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Command.html"><span class="hs-identifier">Distribution.Simple.Command</span></a></span><span>
</span><span id="line-40"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.PreProcess.html"><span class="hs-identifier">Distribution.Simple.PreProcess</span></a></span><span>
</span><span id="line-41"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html"><span class="hs-identifier">Distribution.Simple.Setup</span></a></span><span>
</span><span id="line-42"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="Distribution.Simple.LocalBuildInfo.html"><span class="hs-identifier">Distribution.Simple.LocalBuildInfo</span></a></span><span>
</span><span id="line-43"></span><span>
</span><span id="line-44"></span><span class="hs-keyword">type</span><span> </span><span id="Args"><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-var">Args</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-45"></span><span>
</span><span id="line-46"></span><span class="hs-comment">-- | Hooks allow authors to add specific functionality before and after a</span><span>
</span><span id="line-47"></span><span class="hs-comment">-- command is run, and also to specify additional preprocessors.</span><span>
</span><span id="line-48"></span><span class="hs-comment">--</span><span>
</span><span id="line-49"></span><span class="hs-comment">-- * WARNING: The hooks interface is under rather constant flux as we try to</span><span>
</span><span id="line-50"></span><span class="hs-comment">-- understand users needs. Setup files that depend on this interface may</span><span>
</span><span id="line-51"></span><span class="hs-comment">-- break in future releases.</span><span>
</span><span id="line-52"></span><span class="hs-keyword">data</span><span> </span><span id="UserHooks"><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-var">UserHooks</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="UserHooks"><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-var">UserHooks</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-53"></span><span>
</span><span id="line-54"></span><span>    </span><span class="hs-comment">-- | Read the description file</span><span>
</span><span id="line-55"></span><span>    </span><span id="readDesc"><span class="annot"><span class="annottext">UserHooks -&gt; IO (Maybe GenericPackageDescription)
</span><a href="Distribution.Simple.UserHooks.html#readDesc"><span class="hs-identifier hs-var hs-var">readDesc</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="Distribution.Types.GenericPackageDescription.html#GenericPackageDescription"><span class="hs-identifier hs-type">GenericPackageDescription</span></a></span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-56"></span><span>    </span><span class="hs-comment">-- | Custom preprocessors in addition to and overriding 'knownSuffixHandlers'.</span><span>
</span><span id="line-57"></span><span>    </span><span id="hookedPreProcessors"><span class="annot"><span class="annottext">UserHooks -&gt; [PPSuffixHandler]
</span><a href="Distribution.Simple.UserHooks.html#hookedPreProcessors"><span class="hs-identifier hs-var hs-var">hookedPreProcessors</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><a href="Distribution.Simple.PreProcess.html#PPSuffixHandler"><span class="hs-identifier hs-type">PPSuffixHandler</span></a></span><span> </span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-58"></span><span>    </span><span class="hs-comment">-- | These programs are detected at configure time.  Arguments for them are</span><span>
</span><span id="line-59"></span><span>    </span><span class="hs-comment">-- added to the configure command.</span><span>
</span><span id="line-60"></span><span>    </span><span id="hookedPrograms"><span class="annot"><span class="annottext">UserHooks -&gt; [Program]
</span><a href="Distribution.Simple.UserHooks.html#hookedPrograms"><span class="hs-identifier hs-var hs-var">hookedPrograms</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="Distribution.Simple.Program.Types.html#Program"><span class="hs-identifier hs-type">Program</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-61"></span><span>
</span><span id="line-62"></span><span>    </span><span class="hs-comment">-- |Hook to run before configure command</span><span>
</span><span id="line-63"></span><span>    </span><span id="preConf"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; ConfigFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preConf"><span class="hs-identifier hs-var hs-var">preConf</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-64"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during configure.</span><span>
</span><span id="line-65"></span><span>    </span><span id="confHook"><span class="annot"><span class="annottext">UserHooks
-&gt; (GenericPackageDescription, HookedBuildInfo)
-&gt; ConfigFlags
-&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#confHook"><span class="hs-identifier hs-var hs-var">confHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="Distribution.Types.GenericPackageDescription.html#GenericPackageDescription"><span class="hs-identifier hs-type">GenericPackageDescription</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-66"></span><span>            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-67"></span><span>    </span><span class="hs-comment">-- |Hook to run after configure command</span><span>
</span><span id="line-68"></span><span>    </span><span id="postConf"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; ConfigFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postConf"><span class="hs-identifier hs-var hs-var">postConf</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ConfigFlags"><span class="hs-identifier hs-type">ConfigFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-69"></span><span>
</span><span id="line-70"></span><span>    </span><span class="hs-comment">-- |Hook to run before build command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-71"></span><span>    </span><span id="preBuild"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; BuildFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBuild"><span class="hs-identifier hs-var hs-var">preBuild</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BuildFlags"><span class="hs-identifier hs-type">BuildFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-72"></span><span>
</span><span id="line-73"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during build.</span><span>
</span><span id="line-74"></span><span>    </span><span id="buildHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BuildFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#buildHook"><span class="hs-identifier hs-var hs-var">buildHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BuildFlags"><span class="hs-identifier hs-type">BuildFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-75"></span><span>    </span><span class="hs-comment">-- |Hook to run after build command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-76"></span><span>    </span><span id="postBuild"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; BuildFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBuild"><span class="hs-identifier hs-var hs-var">postBuild</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BuildFlags"><span class="hs-identifier hs-type">BuildFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-77"></span><span>
</span><span id="line-78"></span><span>    </span><span class="hs-comment">-- |Hook to run before repl command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-79"></span><span>    </span><span id="preRepl"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; ReplFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preRepl"><span class="hs-identifier hs-var hs-var">preRepl</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ReplFlags"><span class="hs-identifier hs-type">ReplFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-80"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during interpretation.</span><span>
</span><span id="line-81"></span><span>    </span><span id="replHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; ReplFlags
-&gt; Args
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#replHook"><span class="hs-identifier hs-var hs-var">replHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ReplFlags"><span class="hs-identifier hs-type">ReplFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-82"></span><span>    </span><span class="hs-comment">-- |Hook to run after repl command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-83"></span><span>    </span><span id="postRepl"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; ReplFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postRepl"><span class="hs-identifier hs-var hs-var">postRepl</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#ReplFlags"><span class="hs-identifier hs-type">ReplFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-84"></span><span>
</span><span id="line-85"></span><span>    </span><span class="hs-comment">-- |Hook to run before clean command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-86"></span><span>    </span><span id="preClean"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; CleanFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preClean"><span class="hs-identifier hs-var hs-var">preClean</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CleanFlags"><span class="hs-identifier hs-type">CleanFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-87"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during clean.</span><span>
</span><span id="line-88"></span><span>    </span><span id="cleanHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription -&gt; () -&gt; UserHooks -&gt; CleanFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#cleanHook"><span class="hs-identifier hs-var hs-var">cleanHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CleanFlags"><span class="hs-identifier hs-type">CleanFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-89"></span><span>    </span><span class="hs-comment">-- |Hook to run after clean command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-90"></span><span>    </span><span id="postClean"><span class="annot"><span class="annottext">UserHooks
-&gt; Args -&gt; CleanFlags -&gt; PackageDescription -&gt; () -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postClean"><span class="hs-identifier hs-var hs-var">postClean</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CleanFlags"><span class="hs-identifier hs-type">CleanFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-91"></span><span>
</span><span id="line-92"></span><span>    </span><span class="hs-comment">-- |Hook to run before copy command</span><span>
</span><span id="line-93"></span><span>    </span><span id="preCopy"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; CopyFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preCopy"><span class="hs-identifier hs-var hs-var">preCopy</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CopyFlags"><span class="hs-identifier hs-type">CopyFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-94"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during copy.</span><span>
</span><span id="line-95"></span><span>    </span><span id="copyHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; CopyFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#copyHook"><span class="hs-identifier hs-var hs-var">copyHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CopyFlags"><span class="hs-identifier hs-type">CopyFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-96"></span><span>    </span><span class="hs-comment">-- |Hook to run after copy command</span><span>
</span><span id="line-97"></span><span>    </span><span id="postCopy"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; CopyFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postCopy"><span class="hs-identifier hs-var hs-var">postCopy</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#CopyFlags"><span class="hs-identifier hs-type">CopyFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-98"></span><span>
</span><span id="line-99"></span><span>    </span><span class="hs-comment">-- |Hook to run before install command</span><span>
</span><span id="line-100"></span><span>    </span><span id="preInst"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; InstallFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preInst"><span class="hs-identifier hs-var hs-var">preInst</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#InstallFlags"><span class="hs-identifier hs-type">InstallFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-101"></span><span>
</span><span id="line-102"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during install.</span><span>
</span><span id="line-103"></span><span>    </span><span id="instHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; InstallFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#instHook"><span class="hs-identifier hs-var hs-var">instHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#InstallFlags"><span class="hs-identifier hs-type">InstallFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-104"></span><span>    </span><span class="hs-comment">-- |Hook to run after install command.  postInst should be run</span><span>
</span><span id="line-105"></span><span>    </span><span class="hs-comment">-- on the target, not on the build machine.</span><span>
</span><span id="line-106"></span><span>    </span><span id="postInst"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; InstallFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postInst"><span class="hs-identifier hs-var hs-var">postInst</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#InstallFlags"><span class="hs-identifier hs-type">InstallFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-107"></span><span>
</span><span id="line-108"></span><span>    </span><span class="hs-comment">-- |Hook to run before register command</span><span>
</span><span id="line-109"></span><span>    </span><span id="preReg"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preReg"><span class="hs-identifier hs-var hs-var">preReg</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-110"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during registration.</span><span>
</span><span id="line-111"></span><span>    </span><span id="regHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; RegisterFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#regHook"><span class="hs-identifier hs-var hs-var">regHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-112"></span><span>    </span><span class="hs-comment">-- |Hook to run after register command</span><span>
</span><span id="line-113"></span><span>    </span><span id="postReg"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; RegisterFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postReg"><span class="hs-identifier hs-var hs-var">postReg</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-114"></span><span>
</span><span id="line-115"></span><span>    </span><span class="hs-comment">-- |Hook to run before unregister command</span><span>
</span><span id="line-116"></span><span>    </span><span id="preUnreg"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preUnreg"><span class="hs-identifier hs-var hs-var">preUnreg</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-117"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during unregistration.</span><span>
</span><span id="line-118"></span><span>    </span><span id="unregHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; RegisterFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#unregHook"><span class="hs-identifier hs-var hs-var">unregHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-119"></span><span>    </span><span class="hs-comment">-- |Hook to run after unregister command</span><span>
</span><span id="line-120"></span><span>    </span><span id="postUnreg"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; RegisterFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postUnreg"><span class="hs-identifier hs-var hs-var">postUnreg</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#RegisterFlags"><span class="hs-identifier hs-type">RegisterFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-121"></span><span>
</span><span id="line-122"></span><span>    </span><span class="hs-comment">-- |Hook to run before hscolour command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-123"></span><span>    </span><span id="preHscolour"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; HscolourFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHscolour"><span class="hs-identifier hs-var hs-var">preHscolour</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HscolourFlags"><span class="hs-identifier hs-type">HscolourFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-124"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during hscolour.</span><span>
</span><span id="line-125"></span><span>    </span><span id="hscolourHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; HscolourFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#hscolourHook"><span class="hs-identifier hs-var hs-var">hscolourHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HscolourFlags"><span class="hs-identifier hs-type">HscolourFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-126"></span><span>    </span><span class="hs-comment">-- |Hook to run after hscolour command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-127"></span><span>    </span><span id="postHscolour"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; HscolourFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postHscolour"><span class="hs-identifier hs-var hs-var">postHscolour</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HscolourFlags"><span class="hs-identifier hs-type">HscolourFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-128"></span><span>
</span><span id="line-129"></span><span>    </span><span class="hs-comment">-- |Hook to run before doctest command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-130"></span><span>    </span><span id="preDoctest"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; DoctestFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preDoctest"><span class="hs-identifier hs-var hs-var">preDoctest</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#DoctestFlags"><span class="hs-identifier hs-type">DoctestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-131"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during doctest.</span><span>
</span><span id="line-132"></span><span>    </span><span id="doctestHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; DoctestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#doctestHook"><span class="hs-identifier hs-var hs-var">doctestHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#DoctestFlags"><span class="hs-identifier hs-type">DoctestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-133"></span><span>    </span><span class="hs-comment">-- |Hook to run after doctest command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-134"></span><span>    </span><span id="postDoctest"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; DoctestFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postDoctest"><span class="hs-identifier hs-var hs-var">postDoctest</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#DoctestFlags"><span class="hs-identifier hs-type">DoctestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-135"></span><span>
</span><span id="line-136"></span><span>    </span><span class="hs-comment">-- |Hook to run before haddock command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-137"></span><span>    </span><span id="preHaddock"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; HaddockFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHaddock"><span class="hs-identifier hs-var hs-var">preHaddock</span></a></span></span><span>  </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HaddockFlags"><span class="hs-identifier hs-type">HaddockFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-138"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during haddock.</span><span>
</span><span id="line-139"></span><span>    </span><span id="haddockHook"><span class="annot"><span class="annottext">UserHooks
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; HaddockFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#haddockHook"><span class="hs-identifier hs-var hs-var">haddockHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HaddockFlags"><span class="hs-identifier hs-type">HaddockFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-140"></span><span>    </span><span class="hs-comment">-- |Hook to run after haddock command.  Second arg indicates verbosity level.</span><span>
</span><span id="line-141"></span><span>    </span><span id="postHaddock"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; HaddockFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postHaddock"><span class="hs-identifier hs-var hs-var">postHaddock</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#HaddockFlags"><span class="hs-identifier hs-type">HaddockFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-142"></span><span>
</span><span id="line-143"></span><span>    </span><span class="hs-comment">-- |Hook to run before test command.</span><span>
</span><span id="line-144"></span><span>    </span><span id="preTest"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; TestFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preTest"><span class="hs-identifier hs-var hs-var">preTest</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#TestFlags"><span class="hs-identifier hs-type">TestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-145"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during test.</span><span>
</span><span id="line-146"></span><span>    </span><span id="testHook"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#testHook"><span class="hs-identifier hs-var hs-var">testHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#TestFlags"><span class="hs-identifier hs-type">TestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-147"></span><span>    </span><span class="hs-comment">-- |Hook to run after test command.</span><span>
</span><span id="line-148"></span><span>    </span><span id="postTest"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; TestFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postTest"><span class="hs-identifier hs-var hs-var">postTest</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#TestFlags"><span class="hs-identifier hs-type">TestFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-149"></span><span>
</span><span id="line-150"></span><span>    </span><span class="hs-comment">-- |Hook to run before bench command.</span><span>
</span><span id="line-151"></span><span>    </span><span id="preBench"><span class="annot"><span class="annottext">UserHooks -&gt; Args -&gt; BenchmarkFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBench"><span class="hs-identifier hs-var hs-var">preBench</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BenchmarkFlags"><span class="hs-identifier hs-type">BenchmarkFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="annot"><a href="Distribution.Types.HookedBuildInfo.html#HookedBuildInfo"><span class="hs-identifier hs-type">HookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-152"></span><span>    </span><span class="hs-comment">-- |Over-ride this hook to get different behavior during bench.</span><span>
</span><span id="line-153"></span><span>    </span><span id="benchHook"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#benchHook"><span class="hs-identifier hs-var hs-var">benchHook</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BenchmarkFlags"><span class="hs-identifier hs-type">BenchmarkFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-154"></span><span>    </span><span class="hs-comment">-- |Hook to run after bench command.</span><span>
</span><span id="line-155"></span><span>    </span><span id="postBench"><span class="annot"><span class="annottext">UserHooks
-&gt; Args
-&gt; BenchmarkFlags
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBench"><span class="hs-identifier hs-var hs-var">postBench</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#Args"><span class="hs-identifier hs-type">Args</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Simple.Setup.html#BenchmarkFlags"><span class="hs-identifier hs-type">BenchmarkFlags</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.PackageDescription.html#PackageDescription"><span class="hs-identifier hs-type">PackageDescription</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="Distribution.Types.LocalBuildInfo.html#LocalBuildInfo"><span class="hs-identifier hs-type">LocalBuildInfo</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">IO</span></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span>  </span><span class="hs-special">}</span><span>
</span><span id="line-157"></span><span>
</span><span id="line-158"></span><span class="hs-comment">-- |Empty 'UserHooks' which do nothing.</span><span>
</span><span id="line-159"></span><span class="annot"><a href="Distribution.Simple.UserHooks.html#emptyUserHooks"><span class="hs-identifier hs-type">emptyUserHooks</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span>
</span><span id="line-160"></span><span id="emptyUserHooks"><span class="annot"><span class="annottext">emptyUserHooks :: UserHooks
</span><a href="Distribution.Simple.UserHooks.html#emptyUserHooks"><span class="hs-identifier hs-var hs-var">emptyUserHooks</span></a></span></span><span>
</span><span id="line-161"></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">UserHooks :: IO (Maybe GenericPackageDescription)
-&gt; [PPSuffixHandler]
-&gt; [Program]
-&gt; (Args -&gt; ConfigFlags -&gt; IO HookedBuildInfo)
-&gt; ((GenericPackageDescription, HookedBuildInfo)
    -&gt; ConfigFlags -&gt; IO LocalBuildInfo)
-&gt; (Args
    -&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; BuildFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; BuildFlags -&gt; IO ())
-&gt; (Args
    -&gt; BuildFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; ReplFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; ReplFlags -&gt; Args -&gt; IO ())
-&gt; (Args
    -&gt; ReplFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; CleanFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription -&gt; () -&gt; UserHooks -&gt; CleanFlags -&gt; IO ())
-&gt; (Args -&gt; CleanFlags -&gt; PackageDescription -&gt; () -&gt; IO ())
-&gt; (Args -&gt; CopyFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; CopyFlags -&gt; IO ())
-&gt; (Args
    -&gt; CopyFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; InstallFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; InstallFlags -&gt; IO ())
-&gt; (Args
    -&gt; InstallFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ())
-&gt; (Args
    -&gt; RegisterFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ())
-&gt; (Args
    -&gt; RegisterFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; HscolourFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; HscolourFlags -&gt; IO ())
-&gt; (Args
    -&gt; HscolourFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; DoctestFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; DoctestFlags -&gt; IO ())
-&gt; (Args
    -&gt; DoctestFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; HaddockFlags -&gt; IO HookedBuildInfo)
-&gt; (PackageDescription
    -&gt; LocalBuildInfo -&gt; UserHooks -&gt; HaddockFlags -&gt; IO ())
-&gt; (Args
    -&gt; HaddockFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; TestFlags -&gt; IO HookedBuildInfo)
-&gt; (Args
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; TestFlags
    -&gt; IO ())
-&gt; (Args
    -&gt; TestFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; (Args -&gt; BenchmarkFlags -&gt; IO HookedBuildInfo)
-&gt; (Args
    -&gt; PackageDescription
    -&gt; LocalBuildInfo
    -&gt; UserHooks
    -&gt; BenchmarkFlags
    -&gt; IO ())
-&gt; (Args
    -&gt; BenchmarkFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ())
-&gt; UserHooks
</span><a href="Distribution.Simple.UserHooks.html#UserHooks"><span class="hs-identifier hs-type">UserHooks</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-162"></span><span>      </span><span class="annot"><span class="annottext">readDesc :: IO (Maybe GenericPackageDescription)
</span><a href="Distribution.Simple.UserHooks.html#readDesc"><span class="hs-identifier hs-var">readDesc</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe GenericPackageDescription
-&gt; IO (Maybe GenericPackageDescription)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe GenericPackageDescription
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-163"></span><span>      </span><span class="annot"><span class="annottext">hookedPreProcessors :: [PPSuffixHandler]
</span><a href="Distribution.Simple.UserHooks.html#hookedPreProcessors"><span class="hs-identifier hs-var">hookedPreProcessors</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-164"></span><span>      </span><span class="annot"><span class="annottext">hookedPrograms :: [Program]
</span><a href="Distribution.Simple.UserHooks.html#hookedPrograms"><span class="hs-identifier hs-var">hookedPrograms</span></a></span><span>      </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span>
</span><span id="line-165"></span><span>      </span><span class="annot"><span class="annottext">preConf :: Args -&gt; ConfigFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preConf"><span class="hs-identifier hs-var">preConf</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; ConfigFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-166"></span><span>      </span><span class="annot"><span class="annottext">confHook :: (GenericPackageDescription, HookedBuildInfo)
-&gt; ConfigFlags -&gt; IO LocalBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#confHook"><span class="hs-identifier hs-var">confHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">(GenericPackageDescription, HookedBuildInfo)
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">ConfigFlags
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo -&gt; IO LocalBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Char] -&gt; LocalBuildInfo
forall a. HasCallStack =&gt; [Char] -&gt; a
</span><a href="../../base/src/GHC.Err.html#error"><span class="hs-identifier hs-var">error</span></a></span><span> </span><span class="annot"><span class="annottext">[Char]
</span><span class="hs-string">&quot;No local build info generated during configure. Over-ride empty configure hook.&quot;</span></span><span class="hs-special">)</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-167"></span><span>      </span><span class="annot"><span class="annottext">postConf :: Args
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postConf"><span class="hs-identifier hs-var">postConf</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; ConfigFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-168"></span><span>      </span><span class="annot"><span class="annottext">preBuild :: Args -&gt; BuildFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBuild"><span class="hs-identifier hs-var">preBuild</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; BuildFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-169"></span><span>      </span><span class="annot"><span class="annottext">buildHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; BuildFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#buildHook"><span class="hs-identifier hs-var">buildHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; BuildFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-170"></span><span>      </span><span class="annot"><span class="annottext">postBuild :: Args -&gt; BuildFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBuild"><span class="hs-identifier hs-var">postBuild</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; BuildFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-171"></span><span>      </span><span class="annot"><span class="annottext">preRepl :: Args -&gt; ReplFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preRepl"><span class="hs-identifier hs-var">preRepl</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Args
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; IO HookedBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="Distribution.Types.HookedBuildInfo.html#emptyHookedBuildInfo"><span class="hs-identifier hs-var">emptyHookedBuildInfo</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-172"></span><span>      </span><span class="annot"><span class="annottext">replHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; ReplFlags -&gt; Args -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#replHook"><span class="hs-identifier hs-var">replHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">PackageDescription
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">LocalBuildInfo
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">UserHooks
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">ReplFlags
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">Args
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">() -&gt; IO ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span class="hs-special">,</span><span>
</span><span id="line-173"></span><span>      </span><span class="annot"><span class="annottext">postRepl :: Args -&gt; ReplFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postRepl"><span class="hs-identifier hs-var">postRepl</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; ReplFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-174"></span><span>      </span><span class="annot"><span class="annottext">preClean :: Args -&gt; CleanFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preClean"><span class="hs-identifier hs-var">preClean</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; CleanFlags -&gt; IO HookedBuildInfo
forall {p}. Args -&gt; p -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679726171"><span class="hs-identifier hs-var">rn</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-175"></span><span>      </span><span class="annot"><span class="annottext">cleanHook :: PackageDescription -&gt; () -&gt; UserHooks -&gt; CleanFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#cleanHook"><span class="hs-identifier hs-var">cleanHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription -&gt; () -&gt; UserHooks -&gt; CleanFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-176"></span><span>      </span><span class="annot"><span class="annottext">postClean :: Args -&gt; CleanFlags -&gt; PackageDescription -&gt; () -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postClean"><span class="hs-identifier hs-var">postClean</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; CleanFlags -&gt; PackageDescription -&gt; () -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-177"></span><span>      </span><span class="annot"><span class="annottext">preCopy :: Args -&gt; CopyFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preCopy"><span class="hs-identifier hs-var">preCopy</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; CopyFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-178"></span><span>      </span><span class="annot"><span class="annottext">copyHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; CopyFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#copyHook"><span class="hs-identifier hs-var">copyHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; CopyFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-179"></span><span>      </span><span class="annot"><span class="annottext">postCopy :: Args -&gt; CopyFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postCopy"><span class="hs-identifier hs-var">postCopy</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; CopyFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-180"></span><span>      </span><span class="annot"><span class="annottext">preInst :: Args -&gt; InstallFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preInst"><span class="hs-identifier hs-var">preInst</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; InstallFlags -&gt; IO HookedBuildInfo
forall {p}. Args -&gt; p -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679726171"><span class="hs-identifier hs-var">rn</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-181"></span><span>      </span><span class="annot"><span class="annottext">instHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; InstallFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#instHook"><span class="hs-identifier hs-var">instHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; InstallFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-182"></span><span>      </span><span class="annot"><span class="annottext">postInst :: Args
-&gt; InstallFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postInst"><span class="hs-identifier hs-var">postInst</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; InstallFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-183"></span><span>      </span><span class="annot"><span class="annottext">preReg :: Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preReg"><span class="hs-identifier hs-var">preReg</span></a></span><span>    </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-184"></span><span>      </span><span class="annot"><span class="annottext">regHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#regHook"><span class="hs-identifier hs-var">regHook</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-185"></span><span>      </span><span class="annot"><span class="annottext">postReg :: Args
-&gt; RegisterFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postReg"><span class="hs-identifier hs-var">postReg</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; RegisterFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-186"></span><span>      </span><span class="annot"><span class="annottext">preUnreg :: Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preUnreg"><span class="hs-identifier hs-var">preUnreg</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; RegisterFlags -&gt; IO HookedBuildInfo
forall {p}. Args -&gt; p -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679726171"><span class="hs-identifier hs-var">rn</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-187"></span><span>      </span><span class="annot"><span class="annottext">unregHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#unregHook"><span class="hs-identifier hs-var">unregHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; RegisterFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-188"></span><span>      </span><span class="annot"><span class="annottext">postUnreg :: Args
-&gt; RegisterFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postUnreg"><span class="hs-identifier hs-var">postUnreg</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; RegisterFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-189"></span><span>      </span><span class="annot"><span class="annottext">preHscolour :: Args -&gt; HscolourFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHscolour"><span class="hs-identifier hs-var">preHscolour</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; HscolourFlags -&gt; IO HookedBuildInfo
forall {p}. Args -&gt; p -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679726171"><span class="hs-identifier hs-var">rn</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-190"></span><span>      </span><span class="annot"><span class="annottext">hscolourHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; HscolourFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#hscolourHook"><span class="hs-identifier hs-var">hscolourHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; HscolourFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-191"></span><span>      </span><span class="annot"><span class="annottext">postHscolour :: Args
-&gt; HscolourFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postHscolour"><span class="hs-identifier hs-var">postHscolour</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; HscolourFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-192"></span><span>      </span><span class="annot"><span class="annottext">preDoctest :: Args -&gt; DoctestFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preDoctest"><span class="hs-identifier hs-var">preDoctest</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; DoctestFlags -&gt; IO HookedBuildInfo
forall {p}. Args -&gt; p -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679726171"><span class="hs-identifier hs-var">rn</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-193"></span><span>      </span><span class="annot"><span class="annottext">doctestHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; DoctestFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#doctestHook"><span class="hs-identifier hs-var">doctestHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; DoctestFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-194"></span><span>      </span><span class="annot"><span class="annottext">postDoctest :: Args
-&gt; DoctestFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postDoctest"><span class="hs-identifier hs-var">postDoctest</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; DoctestFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-195"></span><span>      </span><span class="annot"><span class="annottext">preHaddock :: Args -&gt; HaddockFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preHaddock"><span class="hs-identifier hs-var">preHaddock</span></a></span><span>   </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; HaddockFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-196"></span><span>      </span><span class="annot"><span class="annottext">haddockHook :: PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; HaddockFlags -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#haddockHook"><span class="hs-identifier hs-var">haddockHook</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; HaddockFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-197"></span><span>      </span><span class="annot"><span class="annottext">postHaddock :: Args
-&gt; HaddockFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postHaddock"><span class="hs-identifier hs-var">postHaddock</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; HaddockFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-198"></span><span>      </span><span class="annot"><span class="annottext">preTest :: Args -&gt; TestFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preTest"><span class="hs-identifier hs-var">preTest</span></a></span><span>  </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; TestFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-199"></span><span>      </span><span class="annot"><span class="annottext">testHook :: Args
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; TestFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#testHook"><span class="hs-identifier hs-var">testHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Args
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; TestFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-200"></span><span>      </span><span class="annot"><span class="annottext">postTest :: Args -&gt; TestFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postTest"><span class="hs-identifier hs-var">postTest</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; TestFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-201"></span><span>      </span><span class="annot"><span class="annottext">preBench :: Args -&gt; BenchmarkFlags -&gt; IO HookedBuildInfo
</span><a href="Distribution.Simple.UserHooks.html#preBench"><span class="hs-identifier hs-var">preBench</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; BenchmarkFlags -&gt; IO HookedBuildInfo
forall {m :: * -&gt; *} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var">rn'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-202"></span><span>      </span><span class="annot"><span class="annottext">benchHook :: Args
-&gt; PackageDescription
-&gt; LocalBuildInfo
-&gt; UserHooks
-&gt; BenchmarkFlags
-&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#benchHook"><span class="hs-identifier hs-var">benchHook</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span class="annot"><span class="annottext">Args
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">PackageDescription
-&gt; LocalBuildInfo -&gt; UserHooks -&gt; BenchmarkFlags -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-203"></span><span>      </span><span class="annot"><span class="annottext">postBench :: Args
-&gt; BenchmarkFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
</span><a href="Distribution.Simple.UserHooks.html#postBench"><span class="hs-identifier hs-var">postBench</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args
-&gt; BenchmarkFlags -&gt; PackageDescription -&gt; LocalBuildInfo -&gt; IO ()
forall {m :: * -&gt; *} {p} {p} {p} {p}.
Monad m =&gt;
p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var">ru</span></a></span><span>
</span><span id="line-204"></span><span>    </span><span class="hs-special">}</span><span>
</span><span id="line-205"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679726171"><span class="annot"><span class="annottext">rn :: Args -&gt; p -&gt; IO HookedBuildInfo
</span><a href="#local-6989586621679726171"><span class="hs-identifier hs-var hs-var">rn</span></a></span></span><span>  </span><span id="local-6989586621679726168"><span class="annot"><span class="annottext">Args
</span><a href="#local-6989586621679726168"><span class="hs-identifier hs-var">args</span></a></span></span><span> </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Args -&gt; IO ()
</span><a href="Distribution.Simple.Command.html#noExtraFlags"><span class="hs-identifier hs-var">noExtraFlags</span></a></span><span> </span><span class="annot"><span class="annottext">Args
</span><a href="#local-6989586621679726168"><span class="hs-identifier hs-var">args</span></a></span><span> </span><span class="annot"><span class="annottext">IO () -&gt; IO HookedBuildInfo -&gt; IO HookedBuildInfo
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; m b -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E"><span class="hs-operator hs-var">&gt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; IO HookedBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="Distribution.Types.HookedBuildInfo.html#emptyHookedBuildInfo"><span class="hs-identifier hs-var">emptyHookedBuildInfo</span></a></span><span>
</span><span id="line-206"></span><span>          </span><span id="local-6989586621679726175"><span class="annot"><span class="annottext">rn' :: p -&gt; p -&gt; m HookedBuildInfo
</span><a href="#local-6989586621679726175"><span class="hs-identifier hs-var hs-var">rn'</span></a></span></span><span> </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span>    </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo -&gt; m HookedBuildInfo
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">HookedBuildInfo
</span><a href="Distribution.Types.HookedBuildInfo.html#emptyHookedBuildInfo"><span class="hs-identifier hs-var">emptyHookedBuildInfo</span></a></span><span>
</span><span id="line-207"></span><span>          </span><span id="local-6989586621679726173"><span class="annot"><span class="annottext">ru :: p -&gt; p -&gt; p -&gt; p -&gt; m ()
</span><a href="#local-6989586621679726173"><span class="hs-identifier hs-var hs-var">ru</span></a></span></span><span> </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">p
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">() -&gt; m ()
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">)</span><span>
</span><span id="line-208"></span></pre></body></html>